#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
#include<string>
#include "test.h"


//int main()
//{
//	gm::test_string1();
//
//	return 0;
//}


//int main()
//{
//	char* a = new char('\0');
//
//	int* b = new int[5] {5};
//	return 0;
//}



//int main()
//{
//	string s1("hello world");
//	string s2("gm");
//
//	s1.insert(5,"x");
//	cout << s1 << endl;
//
//	s1.insert(6,s1,0);
//	cout << s1 << endl;
//
//	s1.insert(0,"x"); // 
//	cout << s1 << endl;
//	s1.insert(0,1, 'x');
//	cout << s1 << endl;
//
//	s1.erase(5,4);
//	cout << s1 << endl;
//
//	s1.erase(5);
//	cout << s1 << endl;
//
//	return 0;
//}


//int main()
//{
//	string s1("hello world hello world");
//
//	size_t pos = s1.find(' ',0);
//
//	while (pos != string::npos)
//	{
//		s1.replace(pos,1,"%20");
//		pos = s1.find(' ',pos+3);
//	}
//	cout << s1 << endl;
//
//
//	string s2("hello world hello world");
//	size_t pos1 = s2.find(' ', 0);
//
//	while (pos1 != string::npos)
//	{
//		s2.replace(pos1, 2, "%20");
//		pos1 = s2.find(' ', pos + 3);
//	}
//	cout << s2 << endl;
//
//
//	//string s2("hello world hello world");
//	//string s3;
//
//	//for (auto ch : s2)
//	//{
//	//	if (ch == ' ')
//	//	{
//	//		s3 += "%20";
//	//	}
//	//	else
//	//	{
//	//		s3 += ch;
//	//	}
//
//	//}
//	//cout << s2 << endl;
//	//cout << s3 << endl;
//
//	//s2.swap(s3);
//	//cout << s2 << endl;
//	//cout << s3 << endl;
//
//	return 0;
//}


//int main()
//{
//	string filename("test.cpp");
//	FILE* fout = fopen(filename.c_str(), "r");
//	char ch = fgetc(fout);
//
//	while (ch != EOF)
//	{
//		cout << ch;
//		ch = fgetc(fout);
//	}
//	cout << endl;
//	return 0;
//}


//int main()
//{
//	//const char* a = "abcdefg";
//	//cout << a << endl;
//	//printf("%s\n",a);
//
///*	string filename("test.cpp");
//	FILE* fout = fopen(filename.c_str(), "r");
//	char ch = fgetc(fout)*/;
//
//	string s1("hello world hello world");
//	cout << s1.c_str() <<endl;
//
//	return 0;
//}


//int main()
//{
//    std::string str = "We think in generalities, but we live in details.";
//    // (quoting Alfred N. Whitehead)
//
//    std::string str2 = str.substr(3, 5);     // "think"
//
//   /* cout << endl;*/
//    std::size_t pos = str.find("live");      // position of "live" in str
//
//    std::string str3 = str.substr(pos);     // get from "live" to the end
//
//    std::cout << str2 << endl << str3 << '\n';
//
//    return 0;
//}

int main()
{
	string s1("Test.cpp");
	string s2("Test.tar.zip");

	//size_t pos1 = s1.rfind(".");

	//if(pos1 != string::npos)
	//{
	//	//string suff = s1.substr(pos1,s1.size() - pos1);
	//	string suff = s1.substr(pos1);

	//	cout << suff << endl;
	//}

	string str("https://legacy.cplusplus.com/reference/string/string/substr/");
	string sub1, sub2, sub3;

	size_t pos1 = str.find(":");
	sub1 = str.substr(0,pos1-0);
	cout << sub1 << endl;


	size_t pos2 = str.find("/",pos1+3);
	sub2 = str.substr(pos1+3,pos2 - (pos1 + 3));
	cout << sub2 << endl;


	sub3 = str.substr(pos2+1);
	cout << sub3 << endl;


	return 0;
}


//void SplitFilename(const std::string& str)
//{
//	std::cout << "Splitting: " << str << '\n';
//	std::size_t found = str.find_last_of("/\\");
//	std::cout << " path: " << str.substr(0, found) << '\n';
//	std::cout << " file: " << str.substr(found + 1) << '\n';
//}
//
//int main()
//{
//	std::string str1("/usr/bin/man");
//	std::string str2("c:\\windows\\winhelp.exe");
//
//	SplitFilename(str1);
//	SplitFilename(str2);
//
//	return 0;
//}